Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), phase change random access memory (PCRAM), and flash memory, among others.
Solid state memory devices are utilized as volatile and non-volatile memory for a wide range of electronic applications. Flash memory, which is just one type of solid state memory, typically uses a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption.
Solid state memory devices, including flash devices, can be combined together to form a solid state drive. A solid state drive can be used to replace hard disk drives as the main storage device for a computer, as the solid state drives can have large storage capacities, including a number of gigabytes. The solid state drives can be coupled together by a controller through a number of channels. Data can be written and read on the number of solid state devices through the channels.
A solid state drive is a data storage device that uses solid state memory to store persistent data. A solid state drive often emulates a hard disk drive (but does not necessarily have to), thus easily replacing it in various applications. A solid state drive can often include either NAND flash non-volatile memory or DRAM volatile memory. Solid state drive manufacturers can use nonvolatile flash memory to create a drive that does not require an internal battery supply thus allowing the drive to be more versatile and compact. Solid state drives using flash memory, also known as flash drives, can use standard disk drive form factors (e.g., 1.8-inch, 2.5-inch, and 3.5-inch, among others). In addition, flash solid state drives can retain memory even during power outages because of their lack of a need for an internal battery, thus ensuring constant data storage ability even when not supplied with power.
Flash solid state drives can have superior performance when compared to magnetic disk drives due to their lack of moving parts, which eliminates seek time, latency, and other electro-mechanical delays associated with magnetic disk drives.
Solid state drives can include wear leveling techniques. These techniques can include rotating the cells in the memory array to which data is written. Wear leveling can also include garbage collection that entails rearranging data on memory arrays to account for the dynamic or static nature of the data. Garbage collection included in the wear leveling techniques can be helpful in managing the wear rate of the individual cells of a memory array. These wear leveling techniques do not limit the amount of data that is written on a solid state drive and they do not account for the rate of writing data and the time period over which data is written on the device as being a factor that can affect the performance of the drive.
In dynamic wear leveling, the data blocks with the highest amount of invalid pages can be reclaimed. A page or block of cells in a memory array can be reclaimed by moving valid data from the page or block from a first location to a second page or block location and erasing the first page or block location. Valid data can be data that is desired and should be preserved in memory cells, while invalid data can be data that no longer is desired and can be erased. A threshold for number of total invalid pages in a block can be set to determine if a block will be reclaimed. Particular blocks can be reclaimed by scanning the block table for blocks that have a number of invalid pages above the threshold. A block table can have information detailing the type, location, and status, among other things, for the data in memory cells.
In static wear leveling, blocks that are storing static data can be exchanged with blocks that have high erase counts so that the blocks with static data, and corresponding lower erase counts, are reclaimed. Blocks that have high erase counts now have static data, therefore reducing the erase rate for that block.